/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package siam;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import jeuxEnConsole.Noeud;

/**
 *
 * @author julien
 */
public class JoueurMachine extends Joueur implements ActionListener {

    public JoueurMachine(int numJ, Plateau p, JLabel info) {
        super(numJ, p, info);
    }

    public void jouer() {
        try {
            if(numJoueur == 1){
                Noeud.NbMaxProfondeur2 = 3 ;
            }else{
                Noeud.NbMaxProfondeur2 = 4 ;
            }
            
            Noeud noeud = new Noeud(plateau.getPlateauCaracteres(), numJoueur);
            plateau.getPlateauCaracteres().setTabCaracteres(noeud.getMeilleurCoup());
            System.out.println("Nombre de coups calculés : " + (noeud.getNbCoupsCalcules() - 1));
        }catch (Exception re) {
            JOptionPane.showMessageDialog(null, "Erreur joueur IA !\n" + re.getMessage());
        } finally {
            plateau.initEncadreGris();
        }

        plateau.generePlateau();
        nbCoup++;
        System.out.println("Le joueur " + numJoueur + " vient de jouer.");

        if (!plateau.getPlateauCaracteres().a3Montagnes()) {

            plateau.initEncadreGris();
            System.out.println("Le joueur " + numJoueur + " a gagné la partie en " + nbCoup + " coups !!!!!");

            String nomAnimal = "";
            if (numJoueur == 1) {
                nomAnimal = "Elephants";
            } else {
                nomAnimal = "Rhinos";
            }

            infoUtilisateur.setText("Les " + nomAnimal + " ont gagné la partie en " + nbCoup + " coups !!!!!");

            System.out.println("*************************");
            System.out.println("Fin de la partie");
            System.out.println("*************************\n\n");

        } else if (adversaire instanceof JoueurMachine) {
            plateau.getCoupSuivant().addActionListener(this);
        } else {
            adversaire.jouer();
        }
    }

    public void actionPerformed(ActionEvent e) {
        plateau.getCoupSuivant().removeActionListener(this);
        adversaire.jouer();
    }
}
